Load balancing can be used to distribute workloads across network resources (e.g., links, processing units, servers, etc.) in a manner that improves resource utilization and performance. For example, load balancing over multiple components can improve reliability (e.g., through redundancy) when compared to single component operation. Traditional load balancing techniques rely on statically defined policies to distribute workloads across resources, and consequently may be unable to compensate for, or adapt to, changing network conditions. Such inflexibility may prevent conventional load balancers from fulfilling the demands of large-scale and multi-tenancy platforms, such as data centers and cloud computing service networks. Accordingly, techniques that provide flexible, scalable, and customizable load balancing are desired to achieve efficient and robust distribution of services for diverse applications.